home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Document.h < prev    next >
C/C++ Source or Header  |  1990-12-04  |  3KB  |  117 lines

  1. #ifndef Document_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define Document_First
  6.  
  7. #include "EvtHandler.h"
  8. #include "FileType.h"
  9.  
  10. enum FileDialogType {
  11.     eFDTypeRead,
  12.     eFDTypeWrite,
  13.     eFDTypeImport
  14. };
  15.  
  16. class Document : public EvtHandler {
  17. protected:
  18.     class Application *application;
  19.     int changeCount, uniqueId;
  20.     char *docName, *loadDir;
  21.     const char *docType;
  22.     Command *lastCmd;
  23.     class Menu *menu;
  24.     class ObjList *windows;
  25.     bool isUntitled, isOpen, isConverted;
  26.     class Icon *icon;
  27.     bool *wasopen;
  28.     bool makeBackup;
  29.     class Window *window;
  30.     
  31. public:
  32.     MetaDef(Document);
  33.  
  34.     Document(const char *documentType= cDocTypeUndef);
  35.     ~Document();
  36.  
  37.     //---- dialogs
  38.     virtual class FileDialog *MakeFileDialog(FileDialogType); 
  39.  
  40.     //---- document attributes
  41.     int UniqueId()
  42.     { return uniqueId; }
  43.     const char *GetDocumentType()
  44.     { return docType; }
  45.     bool IsUntitled()
  46.     { return isUntitled; }
  47.     char *GetName()
  48.     { return docName; }
  49.     char *GetLoadDir()
  50.     { return loadDir; }
  51.     virtual void SetName(char *);
  52.     virtual void SetWindowTitle(char *);
  53.  
  54.     //---- change management
  55.     virtual void SetChangeCount(int);
  56.     virtual void InitChangeCount();
  57.     int GetChangeCount()
  58.     { return changeCount; }
  59.     virtual bool Modified();
  60.     virtual bool AlertChanges();    
  61.  
  62.     //---- misc
  63.     virtual void DoMakeViews();
  64.     virtual bool CanLoadDocument(class FileType *type);
  65.     virtual bool CanImportDocument(class FileType *type);
  66.     // when called with type= 0, returns whether any documents can be imported
  67.     void Control(int id, int part, void *vp);
  68.     
  69.     void SetApplication(class Application *);
  70.     EvtHandler *GetNextHandler();
  71.  
  72.     void InspectorId(char *buf, int bufSize);
  73.     void Parts(Collection*);
  74.  
  75.     //---- windows
  76.     virtual void AddWindow(class BlankWin*);
  77.     virtual void OpenWindows();
  78.     class Window *GetWindow()
  79.     { return window; }
  80.     void ShowDocument(Document *shown);
  81.     virtual class Window *DoMakeWindows();
  82.  
  83.     //---- icons
  84.     virtual void Toggle();
  85.     virtual Icon *DoMakeIcon(char *name);
  86.  
  87.     //---- menues
  88.     void DoCreateMenu(class Menu *);
  89.     void DoSetupMenu(class Menu *);
  90.     Command *DoMenuCommand(int);
  91.     void PerformCommand(Command*);
  92.     class Menu *GetMenu();
  93.  
  94.     //---- generic menu commands
  95.     virtual bool Open();
  96.     virtual bool Close();
  97.     virtual void Revert();
  98.     virtual bool Save();
  99.     virtual bool SaveAs();
  100.     virtual Command *Import();
  101.     virtual void Undo();
  102.     virtual void Redo();
  103.  
  104.     //---- input/output
  105.     virtual bool Load(char *name, bool unique, class FileType *doctype);
  106.     virtual bool DoFileIsAlreadyOpen(Document *shown, char *name);
  107.     virtual void Store(char *name, int option);
  108.     virtual void MakeBackup(char *loadDir, char *docName);
  109.     void EnableBackups(bool on);
  110.     virtual void DoRead(istream &, FileType *);
  111.     virtual class Command *DoImport(istream &, FileType *);
  112.     virtual void DoWrite(ostream &, int option);
  113. };
  114.  
  115. #endif Document_First
  116.  
  117.